package com.rgc.domain;

import java.io.Serializable;




import java.util.List;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.NotEmpty;






import com.rgc.service.Utiles.FieldMatch;

@FieldMatch.List( {
		 @FieldMatch(first = "clave", second = "clave_rep", message = "Las password deben ser iguales.") ,
		 @FieldMatch(first = "mail", second = "mail_rep", message = "Los E-Mail deben ser iguales.") 
		})
@Entity

public class Usuario implements Serializable  {
	/**
	 * 
	 */
	private static final long serialVersionUID = -8201986135688912617L;

	/**
	 * 
	 */
	
	
	private List<Permiso> permiso;
	
	private Permiso staff=new Permiso();
	
	private Permiso news=new Permiso();
	
	private Permiso admin=new Permiso();
	
	@Id
	private String idusuario;
	
	@NotBlank
	@Size(min = 1, max = 100)
	@Email
	private String mail;
	
	@NotNull
	@NotBlank
	private String mail_rep;
	
	@Size(max = 50)
	private String nombre;
	
	@Size(max = 100)
	
	private String direccion;
	
	
	@Size(max = 20)
	private String telefono;
	
	
	@NotNull
	@NotBlank
	@Size(min = 4, max = 20)
	
	private String username;
	
	@NotNull
	@NotBlank
	@Size(min = 6, max = 15)
	private String clave;
	
	@NotNull
	@NotBlank
	private String clave_rep;
	
	

	@GeneratedValue 
	private String fecha;
	
	
	@Size(max = 500)
	private String urlimagen;
	
	private boolean info=false;
	private boolean infoplayer=false;
	private boolean infoeventos=false;
	
	private String sponsor;
	
	private String equipo;
	
	public Usuario(){
		
	}
	
	
	public String getClave_rep() {
		return clave_rep;
	}
	public void setClave_rep(String clave_rep) {
		this.clave_rep = clave_rep;
	}
	
	
	public String getUsername() {
		return username;
	}


	public void setUsername(String username) {
		this.username = username;
	}


	public String getClave() {
		return clave;
	}
	public void setClave(String clave) {
		this.clave = clave;
	}
	
	
	
	public String getIdusuario() {
		return idusuario;
	}


	public void setIdusuario(String idusuario) {
		this.idusuario = idusuario;
	}

	

	public String getFecha() {
		return fecha;
	}


	public void setFecha(String fecha) {
		this.fecha = fecha;
	}


	public String getMail() {
		return mail;
	}
	public void setMail(String mail) {
		this.mail = mail.toLowerCase();
	}
	public String getNombre() {
		return nombre;
	}
	
	
	



	@NotEmpty
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public String getDireccion() {
		return direccion;
	}
	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}
	
	public String getTelefono() {
		return telefono;
	}
	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}
	public String getMail_rep() {
		return mail_rep;
	}
	public void setMail_rep(String mail_rep) {
		this.mail_rep = mail_rep.toLowerCase();
	}


	


	public String getUrlimagen() {
		return urlimagen;
	}


	public void setUrlimagen(String urlimagen) {
		this.urlimagen = urlimagen;
	}


	public List<Permiso> getPermiso() {
		return permiso;
	}


	public void setPermiso(List<Permiso> permiso) {
		this.permiso = permiso;
	}




	public Permiso getNews() {
		return news;
	}


	public void setNews(Permiso news) {
		this.news = news;
	}


	public Permiso getAdmin() {
		return admin;
	}


	public void setAdmin(Permiso admin) {
		this.admin = admin;
	}


	public Permiso getStaff() {
		return staff;
	}


	public void setStaff(Permiso staff) {
		this.staff = staff;
	}


	public boolean isInfo() {
		return info;
	}


	public void setInfo(boolean info) {
		this.info = info;
	}


	public boolean isInfoplayer() {
		return infoplayer;
	}


	public void setInfoplayer(boolean infoplayer) {
		this.infoplayer = infoplayer;
	}


	public boolean isInfoeventos() {
		return infoeventos;
	}


	public void setInfoeventos(boolean infoeventos) {
		this.infoeventos = infoeventos;
	}


	public String getEquipo() {
		return equipo;
	}


	public void setEquipo(String equipo) {
		this.equipo = equipo;
	}


	public String getSponsor() {
		return sponsor;
	}


	public void setSponsor(String sponsor) {
		this.sponsor = sponsor;
	}


	
	
	
}
